<?xml version="1.0" encoding="windows-1251"?>
<xs:schema elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:import namespace="http://www.w3.org/XML/1998/namespace" />
  <xs:element name="Menu">
    <xs:complexType>
      <xs:sequence>
		<xs:element name="Title" type="xs:string" minOccurs="0" />
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="Meal" />
      </xs:sequence>
	</xs:complexType>
  </xs:element>
  <xs:element name="Meal">
    <xs:complexType>
      <xs:sequence>
		<xs:element name="Title" type="xs:string" minOccurs="0" />
		<xs:element name="Date" type="xs:datetime" minOccurs="0" />
		<xs:element name="NumberOfDiners" type="xs:integer" minOccurs="0" />
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="recipe" />
      </xs:sequence>
	</xs:complexType>
  </xs:element>
  <xs:element name="recipeml">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="meta" />
        <xs:choice>
          <xs:element ref="menu" />
          <xs:element ref="recipe" />
        </xs:choice>
      </xs:sequence>
      <xs:attribute fixed="0.5" name="version" type="xs:NMTOKEN" />
      <xs:attribute name="generator" type="xs:string" />
      <xs:attribute name="id" type="xs:ID" />
      <xs:attribute name="class" type="xs:NMTOKEN" />
      <xs:attribute name="title" type="xs:string" />
      <xs:attribute ref="xml:lang" />
    </xs:complexType>
  </xs:element>
  <xs:element name="meta">
    <xs:complexType>
      <xs:attribute name="name" use="required">
        <xs:simpleType>
          <xs:restriction base="xs:NMTOKEN">
            <xs:enumeration value="DC.Title" />
            <xs:enumeration value="DC.Subject" />
            <xs:enumeration value="DC.Description" />
            <xs:enumeration value="DC.Type" />
            <xs:enumeration value="DC.Source" />
            <xs:enumeration value="DC.Relation" />
            <xs:enumeration value="DC.Coverage" />
            <xs:enumeration value="DC.Creator" />
            <xs:enumeration value="DC.Publisher" />
            <xs:enumeration value="DC.Contributor" />
            <xs:enumeration value="DC.Rights" />
            <xs:enumeration value="DC.Date" />
            <xs:enumeration value="DC.Format" />
            <xs:enumeration value="DC.Identifier" />
            <xs:enumeration value="DC.Language" />
          </xs:restriction>
        </xs:simpleType>
      </xs:attribute>
      <xs:attribute name="content" type="xs:string" use="required" />
      <xs:attribute name="scheme" type="xs:string" />
      <xs:attribute name="lang" type="xs:string" />
    </xs:complexType>
  </xs:element>
  <xs:element name="menu">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="head" />
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="description" />
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="recipe" />
      </xs:sequence>
      <xs:attribute name="id" type="xs:ID" />
      <xs:attribute name="class" type="xs:NMTOKEN" />
      <xs:attribute name="title" type="xs:string" />
      <xs:attribute ref="xml:lang" />
      <xs:attribute name="system">
        <xs:simpleType>
          <xs:restriction base="xs:NMTOKEN">
            <xs:enumeration value="US" />
            <xs:enumeration value="Imperial" />
            <xs:enumeration value="metric" />
            <xs:enumeration value="SI" />
            <xs:enumeration value="other" />
          </xs:restriction>
        </xs:simpleType>
      </xs:attribute>
    </xs:complexType>
  </xs:element>
  <xs:element name="recipe">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="head" />
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="description" />
        <xs:element minOccurs="0" maxOccurs="1" ref="equipment" />
        <xs:element ref="ingredients" />
        <xs:element ref="directions" />
        <xs:element minOccurs="0" maxOccurs="1" ref="nutrition" />
        <xs:element minOccurs="0" maxOccurs="1" ref="diet-exchanges" />
      </xs:sequence>
      <xs:attribute name="id" type="xs:ID" />
      <xs:attribute name="class" type="xs:NMTOKEN" />
      <xs:attribute name="title" type="xs:string" />
      <xs:attribute ref="xml:lang" />
      <xs:attribute name="system">
        <xs:simpleType>
          <xs:restriction base="xs:NMTOKEN">
            <xs:enumeration value="US" />
            <xs:enumeration value="Imperial" />
            <xs:enumeration value="metric" />
            <xs:enumeration value="SI" />
            <xs:enumeration value="other" />
          </xs:restriction>
        </xs:simpleType>
      </xs:attribute>
    </xs:complexType>
  </xs:element>
  <xs:element name="head">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="title" />
        <xs:element minOccurs="0" maxOccurs="1" ref="subtitle" />
        <xs:element minOccurs="0" maxOccurs="1" ref="version" />
        <xs:element minOccurs="0" maxOccurs="1" ref="source" />
        <xs:element minOccurs="0" maxOccurs="1" ref="categories" />
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="preptime" />
        <xs:element minOccurs="0" maxOccurs="1" ref="yield" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="title">
    <xs:complexType mixed="true">
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:element ref="brandname" />
        <xs:element ref="span" />
        <xs:element ref="frac" />
        <xs:element ref="sep" />
      </xs:choice>
      <xs:attribute name="id" type="xs:ID" />
      <xs:attribute name="class" type="xs:NMTOKEN" />
      <xs:attribute name="title" type="xs:string" />
      <xs:attribute ref="xml:lang" />
    </xs:complexType>
  </xs:element>
  <xs:element name="subtitle">
    <xs:complexType mixed="true">
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:element ref="brandname" />
        <xs:element ref="span" />
        <xs:element ref="frac" />
        <xs:element ref="sep" />
      </xs:choice>
      <xs:attribute name="id" type="xs:ID" />
      <xs:attribute name="class" type="xs:NMTOKEN" />
      <xs:attribute name="title" type="xs:string" />
      <xs:attribute ref="xml:lang" />
    </xs:complexType>
  </xs:element>
  <xs:element name="version">
    <xs:complexType>
      <xs:simpleContent>
        <xs:extension base="xs:string">
          <xs:attribute name="id" type="xs:ID" />
          <xs:attribute name="class" type="xs:NMTOKEN" />
          <xs:attribute name="title" type="xs:string" />
          <xs:attribute ref="xml:lang" />
        </xs:extension>
      </xs:simpleContent>
    </xs:complexType>
  </xs:element>
  <xs:element name="source">
    <xs:complexType mixed="true">
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:element ref="srcitem" />
      </xs:choice>
      <xs:attribute name="id" type="xs:ID" />
      <xs:attribute name="class" type="xs:NMTOKEN" />
      <xs:attribute name="title" type="xs:string" />
      <xs:attribute ref="xml:lang" />
    </xs:complexType>
  </xs:element>
  <xs:element name="srcitem">
    <xs:complexType mixed="true">
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:element ref="span" />
        <xs:element ref="frac" />
        <xs:element ref="sep" />
      </xs:choice>
      <xs:attribute name="id" type="xs:ID" />
      <xs:attribute name="class" type="xs:NMTOKEN" />
      <xs:attribute name="title" type="xs:string" />
      <xs:attribute ref="xml:lang" />
      <xs:attribute name="type" type="xs:string" />
    </xs:complexType>
  </xs:element>
  <xs:element name="categories">
    <xs:complexType mixed="true">
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:element ref="cat" />
      </xs:choice>
      <xs:attribute name="id" type="xs:ID" />
      <xs:attribute name="class" type="xs:NMTOKEN" />
      <xs:attribute name="title" type="xs:string" />
      <xs:attribute ref="xml:lang" />
      <xs:attribute name="content" type="xs:NMTOKENS" />
    </xs:complexType>
  </xs:element>
  <xs:element name="cat">
    <xs:complexType>
      <xs:simpleContent>
        <xs:extension base="xs:string">
          <xs:attribute name="id" type="xs:ID" />
          <xs:attribute name="class" type="xs:NMTOKEN" />
          <xs:attribute name="title" type="xs:string" />
          <xs:attribute ref="xml:lang" />
          <xs:attribute name="type" type="xs:string" />
        </xs:extension>
      </xs:simpleContent>
    </xs:complexType>
  </xs:element>
  <xs:element name="preptime">
    <xs:complexType>
      <xs:sequence>
        <xs:sequence>
          <xs:element ref="time" />
          <xs:sequence minOccurs="0" maxOccurs="unbounded">
            <xs:element minOccurs="0" maxOccurs="1" ref="sep" />
            <xs:element ref="time" />
          </xs:sequence>
        </xs:sequence>
      </xs:sequence>
      <xs:attribute name="id" type="xs:ID" />
      <xs:attribute name="class" type="xs:NMTOKEN" />
      <xs:attribute name="title" type="xs:string" />
      <xs:attribute ref="xml:lang" />
      <xs:attribute name="type" type="xs:string" use="required" />
    </xs:complexType>
  </xs:element>
  <xs:element name="yield">
    <xs:complexType mixed="true">
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:element ref="qty" />
        <xs:element ref="range" />
        <xs:element ref="unit" />
      </xs:choice>
      <xs:attribute name="id" type="xs:ID" />
      <xs:attribute name="class" type="xs:NMTOKEN" />
      <xs:attribute name="title" type="xs:string" />
      <xs:attribute ref="xml:lang" />
    </xs:complexType>
  </xs:element>
  <xs:element name="equipment">
    <xs:complexType>
      <xs:choice>
        <xs:element minOccurs="1" maxOccurs="unbounded" ref="equip-div" />
        <xs:sequence>
          <xs:element minOccurs="0" maxOccurs="unbounded" ref="note" />
          <xs:element ref="tool" />
          <xs:choice minOccurs="0" maxOccurs="unbounded">
            <xs:element ref="note" />
            <xs:element ref="tool" />
          </xs:choice>
        </xs:sequence>
      </xs:choice>
      <xs:attribute name="id" type="xs:ID" />
      <xs:attribute name="class" type="xs:NMTOKEN" />
      <xs:attribute name="title" type="xs:string" />
      <xs:attribute ref="xml:lang" />
      <xs:attribute name="system">
        <xs:simpleType>
          <xs:restriction base="xs:NMTOKEN">
            <xs:enumeration value="US" />
            <xs:enumeration value="Imperial" />
            <xs:enumeration value="metric" />
            <xs:enumeration value="SI" />
            <xs:enumeration value="other" />
          </xs:restriction>
        </xs:simpleType>
      </xs:attribute>
    </xs:complexType>
  </xs:element>
  <xs:element name="equip-div">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" maxOccurs="1" ref="title" />
        <xs:element minOccurs="0" maxOccurs="1" ref="description" />
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="note" />
        <xs:element ref="tool" />
        <xs:choice minOccurs="0" maxOccurs="unbounded">
          <xs:element ref="note" />
          <xs:element ref="tool" />
        </xs:choice>
      </xs:sequence>
      <xs:attribute name="id" type="xs:ID" />
      <xs:attribute name="class" type="xs:NMTOKEN" />
      <xs:attribute name="title" type="xs:string" />
      <xs:attribute ref="xml:lang" />
      <xs:attribute name="system">
        <xs:simpleType>
          <xs:restriction base="xs:NMTOKEN">
            <xs:enumeration value="US" />
            <xs:enumeration value="Imperial" />
            <xs:enumeration value="metric" />
            <xs:enumeration value="SI" />
            <xs:enumeration value="other" />
          </xs:restriction>
        </xs:simpleType>
      </xs:attribute>
      <xs:attribute default="titled" name="type">
        <xs:simpleType>
          <xs:restriction base="xs:NMTOKEN">
            <xs:enumeration value="main" />
            <xs:enumeration value="variation" />
            <xs:enumeration value="titled" />
          </xs:restriction>
        </xs:simpleType>
      </xs:attribute>
    </xs:complexType>
  </xs:element>
  <xs:element name="tool">
    <xs:complexType mixed="true">
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:element ref="brandname" />
        <xs:element ref="qty" />
        <xs:element ref="range" />
        <xs:element ref="size" />
        <xs:element ref="unit" />
        <xs:element ref="span" />
        <xs:element ref="frac" />
        <xs:element ref="sep" />
      </xs:choice>
      <xs:attribute name="id" type="xs:ID" />
      <xs:attribute name="class" type="xs:NMTOKEN" />
      <xs:attribute name="title" type="xs:string" />
      <xs:attribute ref="xml:lang" />
      <xs:attribute default="no" name="optional">
        <xs:simpleType>
          <xs:restriction base="xs:NMTOKEN">
            <xs:enumeration value="yes" />
            <xs:enumeration value="no" />
          </xs:restriction>
        </xs:simpleType>
      </xs:attribute>
    </xs:complexType>
  </xs:element>
  <xs:element name="ingredients">
    <xs:complexType>
      <xs:choice>
        <xs:element minOccurs="1" maxOccurs="unbounded" ref="ing-div" />
        <xs:sequence>
          <xs:element minOccurs="0" maxOccurs="unbounded" ref="note" />
          <xs:element ref="ing" />
          <xs:choice minOccurs="0" maxOccurs="unbounded">
            <xs:element ref="note" />
            <xs:element ref="ing" />
          </xs:choice>
        </xs:sequence>
      </xs:choice>
      <xs:attribute name="id" type="xs:ID" />
      <xs:attribute name="class" type="xs:NMTOKEN" />
      <xs:attribute name="title" type="xs:string" />
      <xs:attribute ref="xml:lang" />
      <xs:attribute name="system">
        <xs:simpleType>
          <xs:restriction base="xs:NMTOKEN">
            <xs:enumeration value="US" />
            <xs:enumeration value="Imperial" />
            <xs:enumeration value="metric" />
            <xs:enumeration value="SI" />
            <xs:enumeration value="other" />
          </xs:restriction>
        </xs:simpleType>
      </xs:attribute>
    </xs:complexType>
  </xs:element>
  <xs:element name="ing-div">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" maxOccurs="1" ref="title" />
        <xs:element minOccurs="0" maxOccurs="1" ref="description" />
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="note" />
        <xs:element ref="ing" />
        <xs:choice minOccurs="0" maxOccurs="unbounded">
          <xs:element ref="note" />
          <xs:element ref="ing" />
        </xs:choice>
      </xs:sequence>
      <xs:attribute name="id" type="xs:ID" />
      <xs:attribute name="class" type="xs:NMTOKEN" />
      <xs:attribute name="title" type="xs:string" />
      <xs:attribute ref="xml:lang" />
      <xs:attribute name="system">
        <xs:simpleType>
          <xs:restriction base="xs:NMTOKEN">
            <xs:enumeration value="US" />
            <xs:enumeration value="Imperial" />
            <xs:enumeration value="metric" />
            <xs:enumeration value="SI" />
            <xs:enumeration value="other" />
          </xs:restriction>
        </xs:simpleType>
      </xs:attribute>
      <xs:attribute default="titled" name="type">
        <xs:simpleType>
          <xs:restriction base="xs:NMTOKEN">
            <xs:enumeration value="main" />
            <xs:enumeration value="variation" />
            <xs:enumeration value="titled" />
          </xs:restriction>
        </xs:simpleType>
      </xs:attribute>
    </xs:complexType>
  </xs:element>
  <xs:element name="ing">
    <xs:complexType>
      <xs:sequence>
        <xs:sequence>
          <xs:sequence minOccurs="0" maxOccurs="1">
            <xs:sequence>
              <xs:element ref="amt" />
              <xs:sequence minOccurs="0" maxOccurs="unbounded">
                <xs:element minOccurs="0" maxOccurs="1" ref="sep" />
                <xs:element ref="amt" />
              </xs:sequence>
            </xs:sequence>
          </xs:sequence>
          <xs:element minOccurs="0" maxOccurs="1" ref="modifier" />
          <xs:element ref="item" />
          <xs:element minOccurs="0" maxOccurs="1" ref="prep" />
          <xs:element minOccurs="0" maxOccurs="unbounded" ref="ing-note" />
          <xs:element minOccurs="0" maxOccurs="unbounded" ref="prodcode" />
        </xs:sequence>
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="alt-ing" />
      </xs:sequence>
      <xs:attribute name="id" type="xs:ID" />
      <xs:attribute name="class" type="xs:NMTOKEN" />
      <xs:attribute name="title" type="xs:string" />
      <xs:attribute ref="xml:lang" />
      <xs:attribute default="no" name="optional">
        <xs:simpleType>
          <xs:restriction base="xs:NMTOKEN">
            <xs:enumeration value="yes" />
            <xs:enumeration value="no" />
          </xs:restriction>
        </xs:simpleType>
      </xs:attribute>
    </xs:complexType>
  </xs:element>
  <xs:element name="alt-ing">
    <xs:complexType>
      <xs:sequence>
        <xs:sequence>
          <xs:sequence minOccurs="0" maxOccurs="1">
            <xs:sequence>
              <xs:element ref="amt" />
              <xs:sequence minOccurs="0" maxOccurs="unbounded">
                <xs:element minOccurs="0" maxOccurs="1" ref="sep" />
                <xs:element ref="amt" />
              </xs:sequence>
            </xs:sequence>
          </xs:sequence>
          <xs:element minOccurs="0" maxOccurs="1" ref="modifier" />
          <xs:element ref="item" />
          <xs:element minOccurs="0" maxOccurs="1" ref="prep" />
          <xs:element minOccurs="0" maxOccurs="unbounded" ref="ing-note" />
          <xs:element minOccurs="0" maxOccurs="unbounded" ref="prodcode" />
        </xs:sequence>
      </xs:sequence>
      <xs:attribute name="id" type="xs:ID" />
      <xs:attribute name="class" type="xs:NMTOKEN" />
      <xs:attribute name="title" type="xs:string" />
      <xs:attribute ref="xml:lang" />
    </xs:complexType>
  </xs:element>
  <xs:element name="modifier">
    <xs:complexType mixed="true">
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:element ref="size" />
        <xs:element ref="amt" />
        <xs:element ref="time" />
        <xs:element ref="temp" />
        <xs:element ref="span" />
        <xs:element ref="frac" />
        <xs:element ref="sep" />
      </xs:choice>
      <xs:attribute name="id" type="xs:ID" />
      <xs:attribute name="class" type="xs:NMTOKEN" />
      <xs:attribute name="title" type="xs:string" />
      <xs:attribute ref="xml:lang" />
    </xs:complexType>
  </xs:element>
  <xs:element name="item">
    <xs:complexType mixed="true">
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:element ref="brandname" />
        <xs:element ref="span" />
        <xs:element ref="frac" />
        <xs:element ref="sep" />
      </xs:choice>
      <xs:attribute name="id" type="xs:ID" />
      <xs:attribute name="class" type="xs:NMTOKEN" />
      <xs:attribute name="title" type="xs:string" />
      <xs:attribute ref="xml:lang" />
    </xs:complexType>
  </xs:element>
  <xs:element name="prep">
    <xs:complexType mixed="true">
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:element ref="size" />
        <xs:element ref="amt" />
        <xs:element ref="time" />
        <xs:element ref="temp" />
        <xs:element ref="span" />
        <xs:element ref="frac" />
        <xs:element ref="sep" />
      </xs:choice>
      <xs:attribute name="id" type="xs:ID" />
      <xs:attribute name="class" type="xs:NMTOKEN" />
      <xs:attribute name="title" type="xs:string" />
      <xs:attribute ref="xml:lang" />
    </xs:complexType>
  </xs:element>
  <xs:element name="ing-note">
    <xs:complexType mixed="true">
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:element ref="amt" />
        <xs:element ref="time" />
        <xs:element ref="temp" />
        <xs:element ref="span" />
        <xs:element ref="frac" />
        <xs:element ref="sep" />
      </xs:choice>
      <xs:attribute name="id" type="xs:ID" />
      <xs:attribute name="class" type="xs:NMTOKEN" />
      <xs:attribute name="title" type="xs:string" />
      <xs:attribute ref="xml:lang" />
    </xs:complexType>
  </xs:element>
  <xs:element name="prodcode">
    <xs:complexType>
      <xs:attribute name="id" type="xs:ID" />
      <xs:attribute name="type" type="xs:string" use="required" />
      <xs:attribute name="content" type="xs:string" use="required" />
      <xs:attribute name="domain" type="xs:string" />
    </xs:complexType>
  </xs:element>
  <xs:element name="directions">
    <xs:complexType>
      <xs:choice>
        <xs:element minOccurs="1" maxOccurs="unbounded" ref="dir-div" />
        <xs:sequence>
          <xs:choice minOccurs="0" maxOccurs="unbounded">
            <xs:element ref="note" />
            <xs:element ref="ing" />
          </xs:choice>
          <xs:element ref="step" />
          <xs:choice minOccurs="0" maxOccurs="unbounded">
            <xs:element ref="note" />
            <xs:element ref="ing" />
            <xs:element ref="step" />
          </xs:choice>
        </xs:sequence>
      </xs:choice>
      <xs:attribute name="id" type="xs:ID" />
      <xs:attribute name="class" type="xs:NMTOKEN" />
      <xs:attribute name="title" type="xs:string" />
      <xs:attribute ref="xml:lang" />
      <xs:attribute name="system">
        <xs:simpleType>
          <xs:restriction base="xs:NMTOKEN">
            <xs:enumeration value="US" />
            <xs:enumeration value="Imperial" />
            <xs:enumeration value="metric" />
            <xs:enumeration value="SI" />
            <xs:enumeration value="other" />
          </xs:restriction>
        </xs:simpleType>
      </xs:attribute>
    </xs:complexType>
  </xs:element>
  <xs:element name="dir-div">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" maxOccurs="1" ref="title" />
        <xs:element minOccurs="0" maxOccurs="1" ref="description" />
        <xs:choice minOccurs="0" maxOccurs="unbounded">
          <xs:element ref="note" />
          <xs:element ref="ing" />
        </xs:choice>
        <xs:element ref="step" />
        <xs:choice minOccurs="0" maxOccurs="unbounded">
          <xs:element ref="note" />
          <xs:element ref="ing" />
          <xs:element ref="step" />
        </xs:choice>
      </xs:sequence>
      <xs:attribute name="id" type="xs:ID" />
      <xs:attribute name="class" type="xs:NMTOKEN" />
      <xs:attribute name="title" type="xs:string" />
      <xs:attribute ref="xml:lang" />
      <xs:attribute name="system">
        <xs:simpleType>
          <xs:restriction base="xs:NMTOKEN">
            <xs:enumeration value="US" />
            <xs:enumeration value="Imperial" />
            <xs:enumeration value="metric" />
            <xs:enumeration value="SI" />
            <xs:enumeration value="other" />
          </xs:restriction>
        </xs:simpleType>
      </xs:attribute>
      <xs:attribute default="titled" name="type">
        <xs:simpleType>
          <xs:restriction base="xs:NMTOKEN">
            <xs:enumeration value="main" />
            <xs:enumeration value="variation" />
            <xs:enumeration value="titled" />
          </xs:restriction>
        </xs:simpleType>
      </xs:attribute>
      <xs:attribute name="duration" type="xs:string" />
    </xs:complexType>
  </xs:element>
  <xs:element name="step">
    <xs:complexType mixed="true">
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:element ref="action" />
        <xs:element ref="condition" />
        <xs:element ref="setting" />
        <xs:element ref="brandname" />
        <xs:element ref="tool" />
        <xs:element ref="toolref" />
        <xs:element ref="ingref" />
        <xs:element ref="steptime" />
        <xs:element ref="span" />
        <xs:element ref="frac" />
        <xs:element ref="sep" />
        <xs:element ref="amt" />
        <xs:element ref="time" />
        <xs:element ref="temp" />
        <xs:element ref="substep" />
      </xs:choice>
      <xs:attribute name="id" type="xs:ID" />
      <xs:attribute name="class" type="xs:NMTOKEN" />
      <xs:attribute name="title" type="xs:string" />
      <xs:attribute ref="xml:lang" />
      <xs:attribute name="duration" type="xs:string" />
      <xs:attribute default="cooking" name="type" type="xs:string" />
      <xs:attribute default="no" name="optional">
        <xs:simpleType>
          <xs:restriction base="xs:NMTOKEN">
            <xs:enumeration value="yes" />
            <xs:enumeration value="no" />
          </xs:restriction>
        </xs:simpleType>
      </xs:attribute>
    </xs:complexType>
  </xs:element>
  <xs:element name="substep">
    <xs:complexType mixed="true">
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:element ref="action" />
        <xs:element ref="condition" />
        <xs:element ref="setting" />
        <xs:element ref="brandname" />
        <xs:element ref="tool" />
        <xs:element ref="toolref" />
        <xs:element ref="ingref" />
        <xs:element ref="steptime" />
        <xs:element ref="span" />
        <xs:element ref="frac" />
        <xs:element ref="sep" />
        <xs:element ref="amt" />
        <xs:element ref="time" />
        <xs:element ref="temp" />
      </xs:choice>
      <xs:attribute name="id" type="xs:ID" />
      <xs:attribute name="class" type="xs:NMTOKEN" />
      <xs:attribute name="title" type="xs:string" />
      <xs:attribute ref="xml:lang" />
      <xs:attribute name="duration" type="xs:string" />
      <xs:attribute default="cooking" name="type" type="xs:string" />
      <xs:attribute default="no" name="optional">
        <xs:simpleType>
          <xs:restriction base="xs:NMTOKEN">
            <xs:enumeration value="yes" />
            <xs:enumeration value="no" />
          </xs:restriction>
        </xs:simpleType>
      </xs:attribute>
    </xs:complexType>
  </xs:element>
  <xs:element name="action">
    <xs:complexType mixed="true">
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:element ref="amt" />
        <xs:element ref="time" />
        <xs:element ref="temp" />
        <xs:element ref="span" />
        <xs:element ref="frac" />
        <xs:element ref="sep" />
      </xs:choice>
      <xs:attribute name="id" type="xs:ID" />
      <xs:attribute name="class" type="xs:NMTOKEN" />
      <xs:attribute name="title" type="xs:string" />
      <xs:attribute ref="xml:lang" />
      <xs:attribute name="code" type="xs:string" />
    </xs:complexType>
  </xs:element>
  <xs:element name="condition">
    <xs:complexType mixed="true">
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:element ref="amt" />
        <xs:element ref="time" />
        <xs:element ref="temp" />
        <xs:element ref="span" />
        <xs:element ref="frac" />
        <xs:element ref="sep" />
      </xs:choice>
      <xs:attribute name="id" type="xs:ID" />
      <xs:attribute name="class" type="xs:NMTOKEN" />
      <xs:attribute name="title" type="xs:string" />
      <xs:attribute ref="xml:lang" />
      <xs:attribute name="code" type="xs:string" />
    </xs:complexType>
  </xs:element>
  <xs:element name="setting">
    <xs:complexType mixed="true">
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:element ref="amt" />
        <xs:element ref="time" />
        <xs:element ref="temp" />
        <xs:element ref="span" />
        <xs:element ref="frac" />
        <xs:element ref="sep" />
      </xs:choice>
      <xs:attribute name="id" type="xs:ID" />
      <xs:attribute name="class" type="xs:NMTOKEN" />
      <xs:attribute name="title" type="xs:string" />
      <xs:attribute ref="xml:lang" />
      <xs:attribute name="value" type="xs:string" />
    </xs:complexType>
  </xs:element>
  <xs:element name="toolref">
    <xs:complexType mixed="true">
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:element ref="brandname" />
        <xs:element ref="qty" />
        <xs:element ref="range" />
        <xs:element ref="size" />
        <xs:element ref="unit" />
        <xs:element ref="span" />
        <xs:element ref="frac" />
        <xs:element ref="sep" />
      </xs:choice>
      <xs:attribute name="id" type="xs:ID" />
      <xs:attribute name="class" type="xs:NMTOKEN" />
      <xs:attribute name="title" type="xs:string" />
      <xs:attribute ref="xml:lang" />
      <xs:attribute name="toolid" type="xs:IDREF" use="required" />
    </xs:complexType>
  </xs:element>
  <xs:element name="ingref">
    <xs:complexType mixed="true">
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:element ref="brandname" />
        <xs:element ref="qty" />
        <xs:element ref="range" />
        <xs:element ref="size" />
        <xs:element ref="unit" />
        <xs:element ref="span" />
        <xs:element ref="frac" />
        <xs:element ref="sep" />
      </xs:choice>
      <xs:attribute name="id" type="xs:ID" />
      <xs:attribute name="class" type="xs:NMTOKEN" />
      <xs:attribute name="title" type="xs:string" />
      <xs:attribute ref="xml:lang" />
      <xs:attribute name="ingid" type="xs:IDREF" use="required" />
    </xs:complexType>
  </xs:element>
  <xs:element name="steptime">
    <xs:complexType>
      <xs:sequence>
        <xs:sequence>
          <xs:element ref="time" />
          <xs:sequence minOccurs="0" maxOccurs="unbounded">
            <xs:element minOccurs="0" maxOccurs="1" ref="sep" />
            <xs:element ref="time" />
          </xs:sequence>
        </xs:sequence>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="nutrition">
    <xs:complexType mixed="true">
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:element ref="nutrient-group" />
        <xs:element ref="nutrient" />
      </xs:choice>
      <xs:attribute name="id" type="xs:ID" />
      <xs:attribute name="class" type="xs:NMTOKEN" />
      <xs:attribute name="title" type="xs:string" />
      <xs:attribute ref="xml:lang" />
      <xs:attribute default="USDV" name="standard" type="xs:string" />
    </xs:complexType>
  </xs:element>
  <xs:element name="nutrient-group">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" maxOccurs="1" ref="title" />
        <xs:element minOccurs="1" maxOccurs="unbounded" ref="nutrient" />
      </xs:sequence>
      <xs:attribute name="id" type="xs:ID" />
      <xs:attribute name="class" type="xs:NMTOKEN" />
      <xs:attribute name="title" type="xs:string" />
      <xs:attribute ref="xml:lang" />
      <xs:attribute default="USDV" name="standard" type="xs:string" />
    </xs:complexType>
  </xs:element>
  <xs:element name="nutrient">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="1" maxOccurs="unbounded" ref="n-name" />
        <xs:choice minOccurs="1" maxOccurs="unbounded">
          <xs:sequence>
            <xs:element ref="qty" />
            <xs:element minOccurs="0" maxOccurs="1" ref="unit" />
          </xs:sequence>
          <xs:element ref="percent" />
        </xs:choice>
      </xs:sequence>
      <xs:attribute name="id" type="xs:ID" />
      <xs:attribute name="class" type="xs:NMTOKEN" />
      <xs:attribute name="title" type="xs:string" />
      <xs:attribute ref="xml:lang" />
    </xs:complexType>
  </xs:element>
  <xs:element name="n-name">
    <xs:complexType>
      <xs:simpleContent>
        <xs:extension base="xs:string">
          <xs:attribute name="id" type="xs:ID" />
          <xs:attribute name="class" type="xs:NMTOKEN" />
          <xs:attribute name="title" type="xs:string" />
          <xs:attribute ref="xml:lang" />
          <xs:attribute default="no" name="alternate">
            <xs:simpleType>
              <xs:restriction base="xs:NMTOKEN">
                <xs:enumeration value="yes" />
                <xs:enumeration value="no" />
              </xs:restriction>
            </xs:simpleType>
          </xs:attribute>
        </xs:extension>
      </xs:simpleContent>
    </xs:complexType>
  </xs:element>
  <xs:element name="percent">
    <xs:complexType mixed="true">
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:element ref="frac" />
      </xs:choice>
      <xs:attribute default="USDV" name="standard" type="xs:string" />
    </xs:complexType>
  </xs:element>
  <xs:element name="diet-exchanges">
    <xs:complexType mixed="true">
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:element ref="exchange" />
      </xs:choice>
      <xs:attribute name="id" type="xs:ID" />
      <xs:attribute name="class" type="xs:NMTOKEN" />
      <xs:attribute name="title" type="xs:string" />
      <xs:attribute ref="xml:lang" />
      <xs:attribute name="authority" type="xs:string" />
    </xs:complexType>
  </xs:element>
  <xs:element name="exchange">
    <xs:complexType mixed="true">
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:element ref="qty" />
        <xs:element ref="range" />
      </xs:choice>
      <xs:attribute name="id" type="xs:ID" />
      <xs:attribute name="class" type="xs:NMTOKEN" />
      <xs:attribute name="title" type="xs:string" />
      <xs:attribute ref="xml:lang" />
    </xs:complexType>
  </xs:element>
  <xs:element name="description">
    <xs:complexType mixed="true">
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:element ref="amt" />
        <xs:element ref="time" />
        <xs:element ref="temp" />
        <xs:element ref="span" />
        <xs:element ref="frac" />
        <xs:element ref="sep" />
      </xs:choice>
      <xs:attribute name="id" type="xs:ID" />
      <xs:attribute name="class" type="xs:NMTOKEN" />
      <xs:attribute name="title" type="xs:string" />
      <xs:attribute ref="xml:lang" />
    </xs:complexType>
  </xs:element>
  <xs:element name="note">
    <xs:complexType mixed="true">
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:element ref="amt" />
        <xs:element ref="time" />
        <xs:element ref="temp" />
        <xs:element ref="span" />
        <xs:element ref="frac" />
        <xs:element ref="sep" />
      </xs:choice>
      <xs:attribute name="id" type="xs:ID" />
      <xs:attribute name="class" type="xs:NMTOKEN" />
      <xs:attribute name="title" type="xs:string" />
      <xs:attribute ref="xml:lang" />
      <xs:attribute name="type" type="xs:string" />
    </xs:complexType>
  </xs:element>
  <xs:element name="amt">
    <xs:complexType>
      <xs:sequence>
        <xs:choice minOccurs="0" maxOccurs="1">
          <xs:element ref="qty" />
          <xs:element ref="range" />
        </xs:choice>
        <xs:element minOccurs="0" maxOccurs="1" ref="size" />
        <xs:element minOccurs="0" maxOccurs="1" ref="unit" />
        <xs:element minOccurs="0" maxOccurs="1" ref="size" />
      </xs:sequence>
      <xs:attribute name="id" type="xs:ID" />
      <xs:attribute name="class" type="xs:NMTOKEN" />
      <xs:attribute name="title" type="xs:string" />
      <xs:attribute ref="xml:lang" />
      <xs:attribute name="system">
        <xs:simpleType>
          <xs:restriction base="xs:NMTOKEN">
            <xs:enumeration value="US" />
            <xs:enumeration value="Imperial" />
            <xs:enumeration value="metric" />
            <xs:enumeration value="SI" />
            <xs:enumeration value="other" />
          </xs:restriction>
        </xs:simpleType>
      </xs:attribute>
      <xs:attribute name="variation" type="xs:string" />
    </xs:complexType>
  </xs:element>
  <xs:element name="qty">
    <xs:complexType mixed="true">
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:element ref="frac" />
      </xs:choice>
      <xs:attribute name="id" type="xs:ID" />
      <xs:attribute name="class" type="xs:NMTOKEN" />
      <xs:attribute name="title" type="xs:string" />
    </xs:complexType>
  </xs:element>
  <xs:element name="range">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="q1" />
        <xs:element minOccurs="0" maxOccurs="1" ref="sep" />
        <xs:element ref="q2" />
      </xs:sequence>
      <xs:attribute name="id" type="xs:ID" />
      <xs:attribute name="class" type="xs:NMTOKEN" />
      <xs:attribute name="title" type="xs:string" />
    </xs:complexType>
  </xs:element>
  <xs:element name="q1">
    <xs:complexType mixed="true">
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:element ref="frac" />
      </xs:choice>
      <xs:attribute name="id" type="xs:ID" />
      <xs:attribute name="class" type="xs:NMTOKEN" />
      <xs:attribute name="title" type="xs:string" />
    </xs:complexType>
  </xs:element>
  <xs:element name="q2">
    <xs:complexType mixed="true">
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:element ref="frac" />
      </xs:choice>
      <xs:attribute name="id" type="xs:ID" />
      <xs:attribute name="class" type="xs:NMTOKEN" />
      <xs:attribute name="title" type="xs:string" />
    </xs:complexType>
  </xs:element>
  <xs:element name="size">
    <xs:complexType mixed="true">
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:element ref="qty" />
        <xs:element ref="range" />
        <xs:element ref="unit" />
      </xs:choice>
      <xs:attribute name="id" type="xs:ID" />
      <xs:attribute name="class" type="xs:NMTOKEN" />
      <xs:attribute name="title" type="xs:string" />
      <xs:attribute ref="xml:lang" />
      <xs:attribute name="code" type="xs:NMTOKEN" />
    </xs:complexType>
  </xs:element>
  <xs:element name="unit">
    <xs:complexType>
      <xs:simpleContent>
        <xs:extension base="xs:string">
          <xs:attribute name="id" type="xs:ID" />
          <xs:attribute name="class" type="xs:NMTOKEN" />
          <xs:attribute name="title" type="xs:string" />
          <xs:attribute ref="xml:lang" />
          <xs:attribute name="system">
            <xs:simpleType>
              <xs:restriction base="xs:NMTOKEN">
                <xs:enumeration value="US" />
                <xs:enumeration value="Imperial" />
                <xs:enumeration value="metric" />
                <xs:enumeration value="SI" />
                <xs:enumeration value="other" />
              </xs:restriction>
            </xs:simpleType>
          </xs:attribute>
          <xs:attribute name="unit" type="xs:NMTOKEN" />
          <xs:attribute name="type">
            <xs:simpleType>
              <xs:restriction base="xs:NMTOKEN">
                <xs:enumeration value="mass" />
                <xs:enumeration value="weight" />
                <xs:enumeration value="volume" />
                <xs:enumeration value="area" />
                <xs:enumeration value="length" />
                <xs:enumeration value="other" />
              </xs:restriction>
            </xs:simpleType>
          </xs:attribute>
        </xs:extension>
      </xs:simpleContent>
    </xs:complexType>
  </xs:element>
  <xs:element name="time">
    <xs:complexType>
      <xs:sequence>
        <xs:choice>
          <xs:element ref="qty" />
          <xs:element ref="range" />
        </xs:choice>
        <xs:element ref="timeunit" />
      </xs:sequence>
      <xs:attribute name="id" type="xs:ID" />
      <xs:attribute name="class" type="xs:NMTOKEN" />
      <xs:attribute name="title" type="xs:string" />
    </xs:complexType>
  </xs:element>
  <xs:element name="timeunit">
    <xs:complexType>
      <xs:simpleContent>
        <xs:extension base="xs:string">
          <xs:attribute name="id" type="xs:ID" />
          <xs:attribute name="class" type="xs:NMTOKEN" />
          <xs:attribute name="title" type="xs:string" />
          <xs:attribute ref="xml:lang" />
          <xs:attribute name="system">
            <xs:simpleType>
              <xs:restriction base="xs:NMTOKEN">
                <xs:enumeration value="US" />
                <xs:enumeration value="Imperial" />
                <xs:enumeration value="metric" />
                <xs:enumeration value="SI" />
                <xs:enumeration value="other" />
              </xs:restriction>
            </xs:simpleType>
          </xs:attribute>
          <xs:attribute name="unit" type="xs:NMTOKEN" />
        </xs:extension>
      </xs:simpleContent>
    </xs:complexType>
  </xs:element>
  <xs:element name="temp">
    <xs:complexType>
      <xs:sequence>
        <xs:choice>
          <xs:element ref="qty" />
          <xs:element ref="range" />
        </xs:choice>
        <xs:element ref="tempunit" />
      </xs:sequence>
      <xs:attribute name="id" type="xs:ID" />
      <xs:attribute name="class" type="xs:NMTOKEN" />
      <xs:attribute name="title" type="xs:string" />
    </xs:complexType>
  </xs:element>
  <xs:element name="tempunit">
    <xs:complexType>
      <xs:simpleContent>
        <xs:extension base="xs:string">
          <xs:attribute name="id" type="xs:ID" />
          <xs:attribute name="class" type="xs:NMTOKEN" />
          <xs:attribute name="title" type="xs:string" />
          <xs:attribute ref="xml:lang" />
          <xs:attribute name="system">
            <xs:simpleType>
              <xs:restriction base="xs:NMTOKEN">
                <xs:enumeration value="US" />
                <xs:enumeration value="Imperial" />
                <xs:enumeration value="metric" />
                <xs:enumeration value="SI" />
                <xs:enumeration value="other" />
              </xs:restriction>
            </xs:simpleType>
          </xs:attribute>
          <xs:attribute name="unit">
            <xs:simpleType>
              <xs:restriction base="xs:NMTOKEN">
                <xs:enumeration value="C" />
                <xs:enumeration value="F" />
                <xs:enumeration value="K" />
              </xs:restriction>
            </xs:simpleType>
          </xs:attribute>
        </xs:extension>
      </xs:simpleContent>
    </xs:complexType>
  </xs:element>
  <xs:element name="frac">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="n" />
        <xs:element minOccurs="0" maxOccurs="1" ref="sep" />
        <xs:element ref="d" />
      </xs:sequence>
      <xs:attribute name="id" type="xs:ID" />
      <xs:attribute name="class" type="xs:NMTOKEN" />
      <xs:attribute name="title" type="xs:string" />
      <xs:attribute ref="xml:lang" />
    </xs:complexType>
  </xs:element>
  <xs:element name="n" type="xs:string" />
  <xs:element name="d" type="xs:string" />
  <xs:element name="sep">
    <xs:complexType>
      <xs:simpleContent>
        <xs:extension base="xs:string">
          <xs:attribute name="id" type="xs:ID" />
          <xs:attribute name="class" type="xs:NMTOKEN" />
          <xs:attribute name="title" type="xs:string" />
          <xs:attribute ref="xml:lang" />
        </xs:extension>
      </xs:simpleContent>
    </xs:complexType>
  </xs:element>
  <xs:element name="brandname">
    <xs:complexType mixed="true">
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:element ref="mfr" />
        <xs:element ref="product" />
      </xs:choice>
      <xs:attribute name="id" type="xs:ID" />
      <xs:attribute name="class" type="xs:NMTOKEN" />
      <xs:attribute name="title" type="xs:string" />
      <xs:attribute ref="xml:lang" />
    </xs:complexType>
  </xs:element>
  <xs:element name="mfr">
    <xs:complexType mixed="true">
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:element ref="span" />
        <xs:element ref="frac" />
        <xs:element ref="sep" />
      </xs:choice>
      <xs:attribute name="id" type="xs:ID" />
      <xs:attribute name="class" type="xs:NMTOKEN" />
      <xs:attribute name="title" type="xs:string" />
      <xs:attribute ref="xml:lang" />
      <xs:attribute name="uccMin" type="xs:NMTOKEN" />
    </xs:complexType>
  </xs:element>
  <xs:element name="product">
    <xs:complexType mixed="true">
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:element ref="span" />
        <xs:element ref="frac" />
        <xs:element ref="sep" />
      </xs:choice>
      <xs:attribute name="id" type="xs:ID" />
      <xs:attribute name="class" type="xs:NMTOKEN" />
      <xs:attribute name="title" type="xs:string" />
      <xs:attribute ref="xml:lang" />
      <xs:attribute name="uccIcn" type="xs:NMTOKEN" />
    </xs:complexType>
  </xs:element>
  <xs:element name="span">
    <xs:complexType mixed="true">
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:element ref="span" />
        <xs:element ref="frac" />
        <xs:element ref="sep" />
      </xs:choice>
      <xs:attribute name="id" type="xs:ID" />
      <xs:attribute name="class" type="xs:NMTOKEN" />
      <xs:attribute name="title" type="xs:string" />
      <xs:attribute ref="xml:lang" />
    </xs:complexType>
  </xs:element>
</xs:schema>